DATA SEGMENT
    ;开始的分钟数，秒数
    START_MIN       DB  0H
    START_SECOND    DB  0H
    ;当前分钟数，秒数
    NOW_MIN         DB  0H
    NOW_SECOND      DB  0H
    ;已用秒数
    SECOND_USED     DW 0H
    ;最大秒数
    MAX_SECOND      DW  0H
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA

    ; BCD_TO_BINARY PROC
    ;     PUSH AX
    ;     PUSH BX
    ;     PUSH CX
    ;     PUSH DX
    ;     MOV AL,BCD
    ;     ;CL保存低位
    ;     MOV CL,BCD
    ;     AND CL,00001111B
    ;     ;右移四位乘10
    ;     SAL AL,4
    ;     MOV BL,10
    ;     MUL BL
    ;     ;与低位相加
    ;     ADD AL,CL
    ;     MOV BINARY,AL
    ;     POP DX
    ;     POP CX
    ;     POP BX
    ;     POP AX
    ;     RET
    ; BCD_TO_BINARY ENDP

    ; ;获取当前时间
    ; GET_TIME MACRO MIN,SECOND
    ;     PUSH AX
    ;     PUSH BX
    ;     PUSH CX
    ;     PUSH DX
    ;     MOV AH,2CH ;2ch号功能调用，取系统时间：ch,cl,dL中分别存放时分秒,BCD码
	; 	INT 21H
    ;     BCD_TO_BINARY CL,MIN
    ;     BCD_TO_BINARY DL,SECOND
    ;     POP DX
    ;     POP CX
    ;     POP BX
    ;     POP AX
    ; ENDM

    ; ;计算已用秒数
    ; GET_SECOND_USED MACRO
    ;     PUSH AX
    ;     PUSH BX
    ;     PUSH CX
    ;     PUSH DX
    ;     MOV AL,NOW_MIN
    ;     SUB AL,START_MIN
    ;     MOV BL,60
    ;     MUL BL
    ;     MOV BL,NOW_SECOND
    ;     XOR BH,BH
    ;     ADD AX,BX
    ;     MOV BL,START_SECOND
    ;     XOR BH,BH
    ;     SUB AX,BX
    ;     MOV SECOND_USED,AX
    ;     POP DX
    ;     POP CX
    ;     POP BX
    ;     POP AX
    ; ENDM

START:MOV AX,DATA
      MOV DS,AX
    LOOP1:
        MOV AH,2CH ;2ch号功能调用，取系统时间：ch,cl,dL中分别存放时分秒,BCD码
		INT 21H
    JMP LOOP1
        
      mov ah,4ch
      int 21h
CODE ENDS
      END START